package com.ruoyi.system.service;

import com.ruoyi.system.domain.ArchiveUtilizationStats;

import java.util.List;

/**
 * 档案利用统计 Service 接口
 * 封装业务逻辑，供 Controller 调用
 *
 * @author [你的名字或团队名]
 */
public interface ArchiveUtilizationStatsService {
    /**
     * 查询档案利用统计列表，支持名称模糊查询
     *
     * @param stats 查询条件
     * @return 档案利用统计信息列表
     */
    List<ArchiveUtilizationStats> selectArchiveUtilizationStatsList(ArchiveUtilizationStats stats);

    /**
     * 根据主键ID查询档案利用统计详情
     *
     * @param id 主键ID
     * @return 档案利用统计信息
     */
    ArchiveUtilizationStats selectArchiveUtilizationStatsById(Long id);

    /**
     * 新增档案利用统计记录
     *
     * @param stats 要新增的数据
     * @return 操作结果，大于 0 表示成功
     */
    int insertArchiveUtilizationStats(ArchiveUtilizationStats stats);

    /**
     * 修改档案利用统计记录
     *
     * @param stats 要修改的数据（需包含ID）
     * @return 操作结果，大于 0 表示成功
     */
    int updateArchiveUtilizationStats(ArchiveUtilizationStats stats);

    /**
     * 根据主键ID删除单条档案利用统计记录
     *
     * @param id 主键ID
     * @return 操作结果，大于 0 表示成功
     */
    int deleteArchiveUtilizationStatsById(Long id);

    /**
     * 批量删除档案利用统计记录
     *
     * @param ids 要删除的主键ID数组
     * @return 操作结果，等于成功删除的记录数
     */
    int deleteArchiveUtilizationStatsByIds(Long[] ids);

    /**
     * 批量保存档案利用统计数据（先删除所有旧数据，再插入新数据）
     *
     * @param list 要保存的数据列表
     * @return 操作结果，等于成功插入的记录数
     */
    int batchSaveArchiveUtilizationStats(List<ArchiveUtilizationStats> list);
}